package com.zhuoyue.system.service;

import java.util.List;

import com.zhuoyue.common.core.domain.ChartData;
import com.zhuoyue.system.domain.po.SelectTimePo;
import com.zhuoyue.system.domain.po.TblAppUserPo;
import com.zhuoyue.system.domain.vo.AppUserPositionVo;
import com.zhuoyue.system.domain.vo.TblAppUserVo;

/**
 * APP用户Service接口
 *
 * @author hewenze
 * @date 2020-08-05
 */
public interface ITblAppUserService {


    /**
     * 查询APP用户列表
     *
     * @param tblAppUserPo APP用户
     * @return APP用户集合
     */
    List<TblAppUserVo> selectTblAppUserList(TblAppUserPo tblAppUserPo);

    /**
     * 查询APP用户推送列表
     *
     * @param tblAppUserPo APP用户
     * @return APP用户集合
     */
    List<TblAppUserVo> selectTblAppUserPushList(TblAppUserPo tblAppUserPo);

    /**
     * 根据账号和组织编码查询用户
     *
     * @param tblAppUserPo APP用户
     * @return APP用户集合
     */
    TblAppUserVo selectTblAppUserByAccountAndOrgCode(String account, String orgCode);

    /**
     * 查询APP用户位置列表
     *
     * @param tblAppUserPo
     * @return
     */
    List<AppUserPositionVo> selectAppUserPositionList(TblAppUserPo tblAppUserPo);


    /**
     * 查询用户总量
     *
     * @param tblAppUserPo
     * @return Integer数组, 分别为总量、IOS数量、安卓数量
     */
    List<Integer> selectTblAppUserCount(TblAppUserPo tblAppUserPo);

    /**
     * 查询某个时间段内用户的注册量
     *
     * @return
     */
    int getRegisterCount(SelectTimePo selectTimePo);

    List<ChartData> getRegisterCountOfDays(SelectTimePo selectTimePo);
}
